//
//  SinaWelcomeViewController.swift
//  WeiBo
//
//  Created by Apple on 16/1/4.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit
import SnapKit

/*

*/

class SinaWelcomeViewController: UIViewController {

    
    //定义一个全局的约束
//    var bottomConstraint: NSLayoutConstraint?
    
    // 定义一个 Snapkit的约束 -- Constraint
    var bottomSnapKitConstraint: Constraint?
    override func loadView() {
        
        view = UIImageView(image: UIImage(named: "ad_background"))
        
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        setupUI()
    }

   // 在 viewDidAppear方法里添加动画
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        // 更新约束
//        bottomConstraint?.constant = -(UIScreen.mainScreen().bounds.height - 150)
        
        bottomSnapKitConstraint?.updateOffset(-(UIScreen.mainScreen().bounds.height - 150))
        // 第二个问题,动画效果
        // usingSpringWithDamping -- 范围为 0.0f 到 1.0f，数值越小 弹簧 的振动效果越明显
        // initialSpringVelocity :  则表示初始的速度，数值越大一开始移动越快，初始速度取值较高而时间较短时，会出现反弹情况
        // OC里枚举可以写 nil, Swift 可以用 []
        UIView.animateWithDuration(2, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: [], animations: { () -> Void in
            
            // 第一个问题: 面试经常问到的
            // 强制刷新
            self.view.layoutIfNeeded()
            }) { (_ ) -> Void in
         
                
                //
                 NSNotificationCenter.defaultCenter().postNotificationName(kNotificationEnter, object: nil)
        }
    }

    //
    private func setupUI(){
    
        view.addSubview(photoImageView)
        view.addSubview(nameLabel)
//        //设置约束
//        photoImageView.translatesAutoresizingMaskIntoConstraints = false
//        nameLabel.translatesAutoresizingMaskIntoConstraints = false
//        
//        // 头像的约束 -- 水平居中,距离底部有一个距离 150
//        view.addConstraint(NSLayoutConstraint(item: photoImageView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0))
//        bottomConstraint = NSLayoutConstraint(item: photoImageView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: -150)
//        view.addConstraint(bottomConstraint!)
//        
//        // 欢迎文字设置约束 -- 水平居中, 顶部等于photoImageView底部+ 一个距离
//        view.addConstraint(NSLayoutConstraint(item: nameLabel, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0))
//        view.addConstraint(NSLayoutConstraint(item: nameLabel, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: photoImageView, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 10))
        
        //// 头像的约束 -- 水平居中,距离底部有一个距离 150
        photoImageView.snp_makeConstraints { (make) -> Void in
            
            // make相当于 photoImageView
            make.centerX.equalTo(view.snp_centerX)
            // 一定要关联我的约束
           bottomSnapKitConstraint = make.bottom.equalTo(view.snp_bottom).offset(-150).constraint
        }
        
        //欢迎文字设置约束 -- 水平居中, 顶部等于photoImageView底部+ 一个距离
        nameLabel.snp_makeConstraints { (make) -> Void in
            
            make.centerX.equalTo(view.snp_centerX)
            make.top.equalTo(photoImageView.snp_bottom).offset(10)
            
        }
        
    }
    
    //MARK:--懒加载
    
    // 头像
    lazy var photoImageView: UIImageView = {
    
        let img = UIImageView()
        
        img.image = UIImage(named: "avatar_default_big")
        
        // ???? 是除以 4 还是除以 2
        img.layer.cornerRadius = 170 / 2.0 / 2.0
        
        img.layer.masksToBounds = true
        // 边框的宽度
        img.layer.borderWidth = 3
        // 边框的颜色
        img.layer.borderColor = UIColor.yellowColor().CGColor
        
        // 设置大小
        
        return img
        
        
    }()
    
    //欢迎文字
    lazy var nameLabel: UILabel = {
    
    let label = UILabel()
    
        // 属性
        label.text = "欢迎归来"
        
        //字体和颜色
        label.font = UIFont.systemFontOfSize(16)
        // 
        label.textColor = UIColor.darkGrayColor()
        
        return label
    }()
   

}
